Skip to content

CZ: Add pumped storage pumping to hydro storage - #8777

Open
oldrobotdev wants to merge 1 commit into
electricitymaps:masterfrom
oldrobotdev:cz-pumped-hydro-pumping
Open

CZ: Add pumped storage pumping to hydro storage#8777
oldrobotdev wants to merge 1 commit into
electricitymaps:masterfrom
oldrobotdev:cz-pumped-hydro-pumping

Conversation

@oldrobotdev

Copy link
Copy Markdown
Contributor

Issue

Closes #5426

Description

The CZ parser only reported the generation side of pumped storage, so hydro storage was always negative and pumping never showed up. fetch_production now requests the Load method alongside Generation on the same CepsData endpoint and window, derives pumping per interval as the difference between the Load including pumping and Load series, and adds it to hydro storage. Net storage becomes pumping minus PsPP generation, the approach outlined in the issue. Supersedes #5473 and #7530, which both closed for inactivity.

A failing Load request only costs the pumping enrichment: production still returns with generation-side storage, plus a warning. While in here I also added the raise that fetch_production's no-data branch was missing (the exchange twin got the same fix in #8464).

Preview

Live run over the default 48h window: 192 events, 54 intervals with pumping (max 487.9 MW today at 10:45 local), 56 with discharge (max 478.0 MW). Example event at 2026-07-02 10:45: storage {'hydro': 487.933} with PsPP at 0, and at 2026-06-30 20:00: storage {'hydro': -478.0} while pumping was 0.

Double check

  • I have tested my parser changes locally with uv run test_parser "CZ"
  • I have run pnpx prettier@2 --write . and uv run format in the top level directory to format my changes.

Fetch the CEPS Load data alongside Generation in fetch_production and
derive pumping as the difference between the Load including pumping and
Load series, so net hydro storage becomes pumping minus pumped storage
generation. Load failures degrade to production without pumping instead
of aborting the fetch. Also raise the previously-unraised
ParserException when the Generation response has no data.
@oldrobotdev
oldrobotdev requested a review from a team as a code owner July 2, 2026 16:50
@github-actions github-actions Bot added the python Pull requests that update Python code label Jul 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

python Pull requests that update Python code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Data Issue]: new CZ (CEPS) parser is missing pumping demand for pumped hydro

1 participant